The advent of small, processor based systems has given rise to portable devices capable of performing a seemingly limitless variety of applications. The personal computer has become ubiquitous, and is now commonly available in portable form factors from laptop to notebook to the handheld palmtop. In addition, the use of systems where size and power consumption is minimized and tailored to the application, is becoming more widespread.
Users and manufacturers alike have appreciated that the utility of processor based systems, and especially such handheld systems, can be increased greatly where applications and data may be selectively added and removed by the user. This desire for greater versatility in small form factor packages has been recently accommodated by removable, business-card sized memory cards having non-volatile memory in which may be stored additional application software of interest to the user and data or other information for use with the additional or other applications native to the handheld system.
Some systems allow the user to search and retrieve the information stored on a removable memory card having an overall proprietary organization. A growing number of manufacturers now include in both handheld and larger systems connectors to receive user installable memory cards conforming to the standards promulgated by the Personal Computer Memory Card International Association (PCMCIA) of Sunnyvale, Calif.
Unfortunately, the object code type in many handheld systems is proprietary to the manufacturer. The result is that even though a memory card may be physically insertable into the connector provided on a given system, only the system for which it was specifically created is able to execute any application program and access any data stored thereon. This forces users to acquire separate memory cards with the same application and/or data for each system with which they desire to use the application or data.
A better understanding of the deficiencies of such existing memory devices may be achieved with a brief review of certain principals of digital memory storage. The way in which information is stored and accessed on digital memory media is a function of physical characteristics of the media and the hardware that reads from and writes to the media (collectively called the physical format), and various logical characteristics of the media set by the hardware according to immutable elements of the hardware and instructions from the operating system (collectively called the logical format). The logical format of a memory system defines the file structure--the form and location of the files which contain application software and data. Of course, the format with which the application software and data is recorded (collectively called the object code) is a function of the type of processor employed by the system. Thus, whether the contents of a file is useable in a given system (i.e., whether the application software can execute and data can be understood) further depends on the compatibility of a file's object code format with the processor type used by the handheld system.
The PCMCIA standard provides a common physical format for memory cards. The logical format most widely used with personal computers and many handheld systems is that specified by the Disk Operating System from Microsoft Corporation of Redmond, Wash. (MS-DOS) executing on systems having a processor compatible with the x86 family of microprocessors from Intel Corporation of Santa Clara Calif. The MS-DOS logical format separates the media into several areas including a directory, a file allocation table (FAT) and a data area. As is very well known, the directory includes the names of all files on the media, where they start and their length; the FAT includes the location on the media of all parts of each file; and the data area includes the actual application program and data files.
Heretofore applications and data stored in removable memory could only be shared between devices if the physical, logical and object code formats were identical. But systems having the PCMCIA physical format and MS-DOS logical format still may and often do employ their own object code format. Even where the physical format and logical format of media is the same for two separate systems, attempted reading or execution of files whose object code is compatible with operating systems different from the one used with the system attempting access (the "foreign" system) could lockup the accessing system or at least result in unintelligible displays and/or actions confusing to users.
I have appreciated that what is necessary to overcome these shortcomings is a memory card that can store application software and data for a variety of object code formats in such a manner that application software and data for one system does not interfere with application software and data for another incompatible system. Moreover, specific application software and data should be accessible only when fully compatible with the processor used with the system attempting access, providing added security and ease of use. I have invented a memory card and method for placing application software and data in files for systems using incompatible object code types on a single memory card, and allowing any system employing the same physical and logical format to access just the files having the object code type utilized by that system.